#pragma once

#include "sys/IInterface.h"
#include "data/DataEntity.h"
#include "DocumentID.h"

struct Point;	enum regionCategory;

interface IRegion : public IDataEntity
{
	DEFINE_IID(IID_Region)

	virtual void AddPoint(const Point& pt) = 0;
	virtual void InsertPoint(int32 index,const Point& pt) = 0;
	virtual void AddLine(const Point& begin,const Point& end) = 0;
	virtual void AddRectangle(const Point& lefttop,const Point& rightbottom) = 0;

	virtual const Point& GetPoint(uint32 index) const = 0;
	virtual uint32 CountPoint() const = 0;
	virtual bool ContainPoint(const Point& pt) const = 0;

	virtual regionCategory GetCategory() const = 0;
	virtual void SetCategory(regionCategory value) = 0;
};
